#include <bits/stdc++.h>
using namespace std;
#include "graph.h"

const int N = 205;

int tot = 2,e[N][N];

void solve() {
	int siz=NumberOfRoads();
	int nw=Color();
	for(int i=1;i<=siz;i++) {
		Move(i,Color());
		if (Color()!=1) {
			e[nw-1][Color()-1]=e[Color()-1][nw-1]=1;
			Move(LastRoad(),Color());
			continue;
		}
		Move(LastRoad(),++tot);
		e[nw-1][tot-1]=e[tot-1][nw-1]=1;
		Move(i,Color());
		int lst=LastRoad();
		solve(); Move(lst,Color());
	}
}

int ans[N];

void Inspect(int R) {
	memset(e, 0x3f, sizeof e);
	Move(1,2);
	Move(LastRoad(),Color());
	solve();
	tot--;
	for(int i=1;i<=tot;i++) e[i][i]=0;
	for(int k=1;k<=tot;k++) {
		for(int i=1;i<=tot;i++) {
			for(int j=1;j<=tot;j++) {
				e[i][j]=min(e[i][j],e[i][k]+e[k][j]);
			}
		}
	}
	for(int i=1;i<=tot;i++) {
		for(int j=i+1;j<=tot;j++) {
			if (e[i][j]<=R) ans[e[i][j]]++;
		}
	}
	for(int i=1;i<=R;i++) Answer(i, ans[i]);
}
